/**   
 * Copyright © 2020 eSunny Info. Tech Ltd. All rights reserved.
 * 
 * 功能描述：表[staff-message]数据操作接口
 * @Package: com.yl.staff.dao 
 * @author: Bai   
 * @date: 2020年12月21日 下午3:06:39 
 */
package com.yl.staff.dao;

import java.util.List;

import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.Update;

import com.yl.staff.model.BeanStaffMessage;

/**
* Copyright: Copyright (c) 2020 云邻信息科技
* 
* @ClassName: MapStaffMessage.java
* @Description: 表[staff-message]数据操作接口
*
* @version: v1.4.1
* @author: Bai
* @date: 2020年12月21日 下午3:06:39 
*
* Modification History:<br>
* Date         Author          Version            Description
*---------------------------------------------------------*<br>
* 2020年12月21日     Bai           v1.0.0               新建<br>
* 2020年12月24日     Bai           v1.0.1               系统性修改SQL语句，针对查询，添加查询数据列<br>
* 2021年01月09日     Bai           v1.2.1               新增根据在职状态查询所有用户信息方法 
* 											   	   selectAllPositionStatus(String positionStatus)<br>
* 2021年01月19日     Bai			  v1.3.1			        新增添加员工基本信息方法
* 												   insertStaffMessage(BeanStaffMessage bean)<br>
* 2021年01月20日     Bai			  v1.4.1			        新增根据数据编号更新数据内容
* 												   updateStaffMessageById(BeanStaffMessage bean)<br>
*/
/*
 * 功能列表：
* 	Date         Author          Method            				 Description
*	---------------------------------------------------------------------*<br>
*	2020年12月21日     Bai            selectAll()        				   				查询人员表中的所有信息
* 	2020年12月21日     Bai            selectById(int id) 				  				根据数据编号查询人员表中的所有信息
*   2020年12月21日     Bai            selectByCode(String staffCode)  				根据员工编号查询人员表中的所有信息
 *  2021年01月09日     Bai			 selectAllPositionStatus(String positionStatus) 根据在职状态查询所有用户信息方法 
 *  2021年01月19日     Bai			 insertStaffMessage(BeanStaffMessage bean)		添加员工基本信息
 *  2021年01月20日     Bai			 updateStaffMessageById(BeanStaffMessage bean)	根据数据编号更新数据内容
 * */
@Mapper
public interface MapStaffMessage {

	/**
	* 
	* @Function: MapStaffMessage.java
	* @Description: 查询所有用户信息
	*
	* @param:无
	* @return：List<BeanStaffMessage> 员工数据列表
	* @throws：异常描述
	*
	* @version: v1.0.2
	* @author: Bai
	* @date: 2020年12月21日 下午3:19:45 
	*
	* Modification History: <br>
	* Date         Author          Version            Description
	*-------------------------------------------------------------*<br>
	* 2020年12月21日     Bai           v1.0.0               	新建 <br>
	* 2020年12月24日     Bai           v1.0.1               	修改 SQL语句添加  position_status 列<br>
	* 2021年01月08日     Bai           v1.0.2               	修改 SQL语句添加数据过滤条件 order by id DESC<br>
	 */
	@Select("SELECT " + 
			"    `id`,`staff_code`,`station`,`department`,`name`,`sex`,`mobile`,`birthday`,`user_card`," + 
			"    `education`,`univesity`,`major`,`entry_time`,`work_schedule_tolerance`,`bank`,`position_status`," + 
			"    `bank_card`,`address`,`departure`,`contract_start_date`,`contract_end_date`,`contract_remarks`" + 
			"FROM" + 
			"    `staff-message` order by id DESC;")
	public List<BeanStaffMessage> selectAll();
	
	/**
	 * 
	* @Function: MapStaffMessage.java
	* @Description: 根据用户数据编号查找用户信息
	*
	* @param： id 员工数据编号
	* @return：BeanStaffMessage 员工单体数据
	* @throws：异常描述
	*
	* @version: v1.0.1 
	* @author: Bai
	* @date: 2020年12月21日 下午5:33:10 
	*
	* Modification History:<br>
	* Date         Author          Version            Description
	*---------------------------------------------------------*<br>
	* 2020年12月21日     Bai           v1.0.0               	新建<br>
	* 2020年12月24日     Bai           v1.0.1               	修改 SQL语句添加 position_status 列<br>
	 */
	@Select("SELECT " + 
			"    `id`,`staff_code`,`station`,`department`,`name`,`sex`,`mobile`,`birthday`,`user_card`," + 
			"    `education`,`univesity`,`major`,`entry_time`,`work_schedule_tolerance`,`bank`,`position_status`," + 
			"    `bank_card`,`address`,`departure`,`contract_start_date`,`contract_end_date`,`contract_remarks`" + 
			"FROM" + 
			"    `staff-message` where id = #{id};")
	public BeanStaffMessage selectById(int id);
	/**
	 * 
	* @Function: MapStaffMessage.java
	* @Description: 根据员工编号查找人员信息
	*
	* @param: String staffCode 员工编号
	* @return：BeanStaffMessage 员工单体数据
	* @throws：异常描述
	*
	* @version: v1.0.1 
	* @author: Bai
	* @date: 2020年12月21日 下午7:09:16 
	*
	* Modification History:<br>
	* Date         Author          Version            Description
	*---------------------------------------------------------*<br>
	* 2020年12月21日     Bai           v1.0.0               	新建<br>
	* 2020年12月24日     Bai           v1.0.1               	修改 SQL语句添加 position_status 列<br>
	 */
	@Select("SELECT " + 
			"    `id`,`staff_code`,`station`,`department`,`name`,`sex`,`mobile`,`birthday`,`user_card`," + 
			"    `education`,`univesity`,`major`,`entry_time`,`work_schedule_tolerance`,`bank`,`position_status`," + 
			"    `bank_card`,`address`,`departure`,`contract_start_date`,`contract_end_date`,`contract_remarks`" + 
			"FROM" + 
			"    `staff-message` where staff_code = #{staffCode};")
	public BeanStaffMessage selectByCode(String staffCode);
	/**
	 * 
	* @Function: MapStaffMessage.java
	* @Description: 根据在职状态查询所有用户信息
	*
	* @param： String positionStatus 在职状态 （在职/离职）
	* @return：List<BeanStaffMessage> 在职/离职 人员列表
	* @throws：异常描述
	*
	* @version: v1.0.0
	* @author: Bai
	* @date: 2021年1月9日 上午11:27:58 
	*
	* Modification History:<br>
	* Date         Author          Version            Description
	*---------------------------------------------------------*<br>
	* 2021年1月9日        Bai             v1.0.0                                   新建<br>
	 */
	@Select("SELECT " + 
			"    `id`,`staff_code`,`station`,`department`,`name`,`sex`,`mobile`,`birthday`,`user_card`," + 
			"    `education`,`univesity`,`major`,`entry_time`,`work_schedule_tolerance`,`bank`,`position_status`," + 
			"    `bank_card`,`address`,`departure`,`contract_start_date`,`contract_end_date`,`contract_remarks`" + 
			"FROM" + 
			"    `staff-message` where position_status = #{positionStatus};")
	public List<BeanStaffMessage> selectAllPositionStatus(String positionStatus);
	/**
	 * 
	* @Function: MapStaffMessage.java
	* @Description: 添加员工基本信息
	*
	* @param:BeanStaffMessage 员工用户实体
	* @return: boolean true OR false
	* @throws：异常描述
	*
	* @version: v1.0.0
	* @author: Bai
	* @date: 2021年1月19日 下午4:52:49 
	*
	* Modification History:<br>
	* Date         Author          Version            Description
	*---------------------------------------------------------*<br>
	* 2021年1月19日     Bai             v1.0.0              	新建<br>
	 */
	@Insert("INSERT INTO `staff-message` (`staff_code`,`station`,`department`,`name`,`sex`,`mobile`,`birthday`,`user_card`,`education`,`univesity`,`major`,`entry_time`,`work_schedule_tolerance`,`bank`,`bank_card`,`address`,`departure`,`contract_start_date`,`contract_end_date`,`contract_remarks`,`position_status`) VALUES (#{staffCode},#{station},#{department},#{name},#{sex},#{mobile},#{birthday},#{userCard},#{education},#{univesity},#{major},#{entryTime},#{workScheduleTolerance},#{bank},#{bankCard},#{address},#{departure},#{contractStartDate},#{contractEndDate},#{contractRemarks},#{positionStatus});")
	public boolean insertStaffMessage(BeanStaffMessage bean) ;
	/**
	 * 
	* @Function: MapStaffMessage.java
	* @Description: 根据数据编号更新数据内容
	*
	* @param:BeanStaffMessage 员工基本信息实体
	* @return： boolean 更新结果 true OR false
	* @throws：异常描述
	*
	* @version: v1.0.0
	* @author: Bai
	* @date: 2021年1月20日 上午10:19:21 
	*
	* Modification History:<br>
	* Date         Author          Version            Description
	*---------------------------------------------------------*<br>
	* 2021年1月20日     Bai             v1.0.0             	新建 <br>
	 */
	@Update("UPDATE `staff-message` SET `staff_code`= #{staffCode},`station` = #{station},`department`=#{department},`name`=#{name},`sex`=#{sex},`mobile`=#{mobile},`birthday`=#{birthday},`user_card`=#{userCard},`education`=#{education},`univesity`=#{univesity},`major`=#{major},`entry_time`=#{entryTime},`work_schedule_tolerance`=#{workScheduleTolerance},`bank`=#{bank},`bank_card`=#{bankCard},`address`=#{address},`departure`=#{departure},`contract_start_date`=#{contractStartDate},`contract_end_date`=#{contractEndDate},`contract_remarks`=#{contractRemarks},`position_status`=#{positionStatus} WHERE id=#{id};")
	public boolean updateStaffMessageById(BeanStaffMessage bean);
}
